package com.je.app.view;

import java.awt.Dimension;

import javax.swing.DefaultComboBoxModel;
import javax.swing.JPanel;
import javax.swing.ListSelectionModel;
import javax.swing.UIManager;
import javax.swing.JSeparator;

import java.awt.Color;

import javax.swing.JLabel;

import java.awt.Font;

import javax.swing.SwingConstants;
import javax.swing.JComboBox;

import com.je.app.control.ControlTurno;
import com.toedter.calendar.JDateChooser;

import javax.swing.JButton;

import java.awt.SystemColor;

import javax.swing.JTextField;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

@SuppressWarnings("serial")
public class Turnos extends JPanel{
	private JTextField textFieldHabitacion;
	private JTextField textFieldHoraInicio;
	private JTextField textFieldHoraSalida;
	private JTextField textFieldTiempo;
	private JTextField textFieldImporteTurno;
	private JTextField textFieldFecha;
	private JTextField textFieldTotalConsumiciones;
	private JTextField textFieldTotalTurno;
	private JTable tablaConsumiciones;
	private JTable tablaBusqueda;
	@SuppressWarnings("rawtypes")
	private JComboBox comboBoxHabitacion;
	
	@SuppressWarnings({ "rawtypes", "unchecked" })
	public Turnos (Object[][] modelTurnos, DefaultComboBoxModel modelHabitaciones, Object[][] modelConsumiciones) {
				
		setSize(new Dimension(1035, 823));
		setLayout(null);
		
		JSeparator separator = new JSeparator();
		separator.setForeground(Color.LIGHT_GRAY);
		separator.setBounds(26, 45, 40, 1);
		add(separator);
		
		JLabel lblBuscar = new JLabel("Buscar");
		lblBuscar.setHorizontalAlignment(SwingConstants.CENTER);
		lblBuscar.setFont(new Font("Tahoma", Font.PLAIN, 16));
		lblBuscar.setBounds(54, 36, 81, 21);
		add(lblBuscar);
		
		JSeparator separator_1 = new JSeparator();
		separator_1.setForeground(Color.LIGHT_GRAY);
		separator_1.setBounds(124, 45, 890, 1);
		add(separator_1);
		
		JLabel lblFecha = new JLabel("Fecha:");
		lblFecha.setHorizontalAlignment(SwingConstants.LEFT);
		lblFecha.setFont(new Font("Tahoma", Font.PLAIN, 12));
		lblFecha.setBounds(44, 63, 87, 26);
		add(lblFecha);
		
		final JDateChooser dateChooser = new JDateChooser();
		dateChooser.setBounds(87, 63, 100, 26);
		add(dateChooser);
		
		JLabel lblHabitacin = new JLabel("Habitaci\u00F3n:");
		lblHabitacin.setHorizontalAlignment(SwingConstants.LEFT);
		lblHabitacin.setFont(new Font("Tahoma", Font.PLAIN, 12));
		lblHabitacin.setBounds(229, 63, 87, 26);
		add(lblHabitacin);
		
		comboBoxHabitacion = new JComboBox(modelHabitaciones);
		comboBoxHabitacion.setBounds(300, 63, 100, 26);
		add(comboBoxHabitacion);
		
		JButton botonBuscar = new JButton("Buscar");
		botonBuscar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				ControlTurno.getInstance().buscarTurnos(dateChooser.getDate(),comboBoxHabitacion.getSelectedIndex());
			}
		});
		botonBuscar.setForeground(Color.BLACK);
		botonBuscar.setFont(new Font("Tahoma", Font.PLAIN, 12));
		botonBuscar.setBorder(UIManager.getBorder("Button.border"));
		botonBuscar.setBackground(SystemColor.activeCaptionBorder);
		botonBuscar.setBounds(896, 63, 100, 26);
		add(botonBuscar);
		
		JSeparator separator_2 = new JSeparator();
		separator_2.setForeground(Color.LIGHT_GRAY);
		separator_2.setBounds(26, 107, 988, 1);
		add(separator_2);
		
		JSeparator separator_3 = new JSeparator();
		separator_3.setOrientation(SwingConstants.VERTICAL);
		separator_3.setForeground(Color.LIGHT_GRAY);
		separator_3.setBounds(26, 45, 1, 62);
		add(separator_3);
		
		JSeparator separator_4 = new JSeparator();
		separator_4.setOrientation(SwingConstants.VERTICAL);
		separator_4.setForeground(Color.LIGHT_GRAY);
		separator_4.setBounds(1013, 45, 1, 62);
		add(separator_4);
		
		JSeparator separator_5 = new JSeparator();
		separator_5.setForeground(Color.LIGHT_GRAY);
		separator_5.setBounds(25, 476, 40, 1);
		add(separator_5);
		
		JLabel lblTurno = new JLabel("Turno");
		lblTurno.setHorizontalAlignment(SwingConstants.CENTER);
		lblTurno.setFont(new Font("Tahoma", Font.PLAIN, 16));
		lblTurno.setBounds(35, 466, 108, 21);
		add(lblTurno);
		
		JSeparator separator_6 = new JSeparator();
		separator_6.setForeground(Color.LIGHT_GRAY);
		separator_6.setBounds(117, 476, 896, 1);
		add(separator_6);
		
		JSeparator separator_7 = new JSeparator();
		separator_7.setOrientation(SwingConstants.VERTICAL);
		separator_7.setForeground(Color.LIGHT_GRAY);
		separator_7.setBounds(25, 476, 1, 300);
		add(separator_7);
		
		JSeparator separator_8 = new JSeparator();
		separator_8.setForeground(Color.LIGHT_GRAY);
		separator_8.setBounds(26, 776, 988, 1);
		add(separator_8);
		
		JSeparator separator_9 = new JSeparator();
		separator_9.setOrientation(SwingConstants.VERTICAL);
		separator_9.setForeground(Color.LIGHT_GRAY);
		separator_9.setBounds(1013, 476, 1, 300);
		add(separator_9);
		
		JLabel lblPieza = new JLabel("Habitaci\u00F3n:");
		lblPieza.setVerticalAlignment(SwingConstants.TOP);
		lblPieza.setHorizontalAlignment(SwingConstants.LEFT);
		lblPieza.setFont(new Font("Tahoma", Font.PLAIN, 12));
		lblPieza.setBounds(48, 507, 133, 26);
		add(lblPieza);
		
		JLabel label_2 = new JLabel("Fecha:");
		label_2.setVerticalAlignment(SwingConstants.TOP);
		label_2.setHorizontalAlignment(SwingConstants.LEFT);
		label_2.setFont(new Font("Tahoma", Font.PLAIN, 12));
		label_2.setBounds(48, 539, 133, 26);
		add(label_2);
		
		JLabel label_3 = new JLabel("Hora de Inicio:");
		label_3.setVerticalAlignment(SwingConstants.TOP);
		label_3.setHorizontalAlignment(SwingConstants.LEFT);
		label_3.setFont(new Font("Tahoma", Font.PLAIN, 12));
		label_3.setBounds(48, 571, 133, 26);
		add(label_3);
		
		JLabel lblHoraDeSalida_1 = new JLabel("Hora de Salida:");
		lblHoraDeSalida_1.setVerticalAlignment(SwingConstants.TOP);
		lblHoraDeSalida_1.setHorizontalAlignment(SwingConstants.LEFT);
		lblHoraDeSalida_1.setFont(new Font("Tahoma", Font.PLAIN, 12));
		lblHoraDeSalida_1.setBounds(48, 603, 133, 26);
		add(lblHoraDeSalida_1);
		
		JLabel lblHoraDeSalida = new JLabel("Tiempo total:");
		lblHoraDeSalida.setVerticalAlignment(SwingConstants.TOP);
		lblHoraDeSalida.setHorizontalAlignment(SwingConstants.LEFT);
		lblHoraDeSalida.setFont(new Font("Tahoma", Font.PLAIN, 12));
		lblHoraDeSalida.setBounds(48, 635, 133, 26);
		add(lblHoraDeSalida);
		
		JLabel lblImporteTurno = new JLabel("Importe Turno:");
		lblImporteTurno.setVerticalAlignment(SwingConstants.TOP);
		lblImporteTurno.setHorizontalAlignment(SwingConstants.LEFT);
		lblImporteTurno.setFont(new Font("Tahoma", Font.PLAIN, 12));
		lblImporteTurno.setBounds(48, 667, 108, 26);
		add(lblImporteTurno);
		
		textFieldHabitacion = new JTextField();
		textFieldHabitacion.setName("Habitacion");
		textFieldHabitacion.setHorizontalAlignment(SwingConstants.CENTER);
		textFieldHabitacion.setFont(new Font("Tahoma", Font.PLAIN, 12));
		textFieldHabitacion.setEditable(false);
		textFieldHabitacion.setColumns(10);
		textFieldHabitacion.setBounds(169, 502, 107, 26);
		add(textFieldHabitacion);
		
		textFieldHoraInicio = new JTextField();
		textFieldHoraInicio.setName("Hora de entrada");
		textFieldHoraInicio.setHorizontalAlignment(SwingConstants.CENTER);
		textFieldHoraInicio.setFont(new Font("Tahoma", Font.PLAIN, 12));
		textFieldHoraInicio.setEditable(false);
		textFieldHoraInicio.setColumns(10);
		textFieldHoraInicio.setBounds(169, 566, 107, 26);
		add(textFieldHoraInicio);
		
		textFieldHoraSalida = new JTextField();
		textFieldHoraSalida.setName("Hora de salida");
		textFieldHoraSalida.setHorizontalAlignment(SwingConstants.CENTER);
		textFieldHoraSalida.setFont(new Font("Tahoma", Font.PLAIN, 12));
		textFieldHoraSalida.setEditable(false);
		textFieldHoraSalida.setColumns(10);
		textFieldHoraSalida.setBounds(169, 598, 107, 26);
		add(textFieldHoraSalida);
		
		textFieldTiempo = new JTextField();
		textFieldTiempo.setName("Tiempo");
		textFieldTiempo.setHorizontalAlignment(SwingConstants.CENTER);
		textFieldTiempo.setFont(new Font("Tahoma", Font.PLAIN, 12));
		textFieldTiempo.setEditable(false);
		textFieldTiempo.setColumns(10);
		textFieldTiempo.setBounds(169, 630, 107, 26);
		add(textFieldTiempo);
		
		textFieldImporteTurno = new JTextField();
		textFieldImporteTurno.setName("Importe");
		textFieldImporteTurno.setHorizontalAlignment(SwingConstants.CENTER);
		textFieldImporteTurno.setFont(new Font("Tahoma", Font.PLAIN, 12));
		textFieldImporteTurno.setEditable(false);
		textFieldImporteTurno.setColumns(10);
		textFieldImporteTurno.setBounds(169, 662, 107, 26);
		add(textFieldImporteTurno);
		
		textFieldFecha = new JTextField();
		textFieldFecha.setName("Fecha");
		textFieldFecha.setHorizontalAlignment(SwingConstants.CENTER);
		textFieldFecha.setFont(new Font("Tahoma", Font.PLAIN, 12));
		textFieldFecha.setEditable(false);
		textFieldFecha.setColumns(10);
		textFieldFecha.setBounds(169, 534, 107, 26);
		add(textFieldFecha);
		
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setBounds(344, 502, 335, 218);
		add(scrollPane);
		
		tablaConsumiciones = new JTable();
		scrollPane.setName("consumiciones");
		scrollPane.setViewportView(tablaConsumiciones);
		tablaConsumiciones.setModel(new DefaultTableModel(null,new String[] {"Cantidad", "Detalle", "Importe"}) {
			
			public boolean isCellEditable(int row, int column) {
				return false;
		}});

		DefaultTableCellRenderer modelocentrar = new DefaultTableCellRenderer();
		DefaultTableCellRenderer modeloderecha = new DefaultTableCellRenderer();
		modelocentrar.setHorizontalAlignment(SwingConstants.CENTER);
		modeloderecha.setHorizontalAlignment(SwingConstants.RIGHT);
		tablaConsumiciones.getColumnModel().getColumn(0).setResizable(false);
		tablaConsumiciones.getColumnModel().getColumn(0).setPreferredWidth(30);
		tablaConsumiciones.getColumnModel().getColumn(0).setCellRenderer(modelocentrar);
		tablaConsumiciones.getColumnModel().getColumn(1).setResizable(false);
		tablaConsumiciones.getColumnModel().getColumn(1).setPreferredWidth(120);
		tablaConsumiciones.getColumnModel().getColumn(2).setResizable(false);
		tablaConsumiciones.getColumnModel().getColumn(2).setPreferredWidth(60);
		tablaConsumiciones.getColumnModel().getColumn(2).setCellRenderer(modeloderecha);

		
		tablaConsumiciones.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		
		JLabel label_9 = new JLabel("Total Consumiciones:  $");
		label_9.setHorizontalAlignment(SwingConstants.RIGHT);
		label_9.setFont(new Font("Tahoma", Font.PLAIN, 12));
		label_9.setBounds(345, 731, 235, 26);
		add(label_9);
		
		textFieldTotalConsumiciones = new JTextField();
		textFieldTotalConsumiciones.setName("Consumicion");
		textFieldTotalConsumiciones.setHorizontalAlignment(SwingConstants.LEFT);
		textFieldTotalConsumiciones.setFont(new Font("Tahoma", Font.PLAIN, 12));
		textFieldTotalConsumiciones.setEditable(false);
		textFieldTotalConsumiciones.setColumns(10);
		textFieldTotalConsumiciones.setBounds(586, 731, 62, 26);
		add(textFieldTotalConsumiciones);
		
		JLabel label_10 = new JLabel("Total Turno:  $");
		label_10.setHorizontalAlignment(SwingConstants.RIGHT);
		label_10.setFont(new Font("Tahoma", Font.BOLD, 14));
		label_10.setBounds(764, 733, 108, 22);
		add(label_10);
		
		textFieldTotalTurno = new JTextField();
		textFieldTotalTurno.setName("Total");
		textFieldTotalTurno.setHorizontalAlignment(SwingConstants.LEFT);
		textFieldTotalTurno.setFont(new Font("Tahoma", Font.BOLD, 14));
		textFieldTotalTurno.setEditable(false);
		textFieldTotalTurno.setColumns(10);
		textFieldTotalTurno.setBorder(null);
		textFieldTotalTurno.setBounds(873, 734, 69, 21);
		add(textFieldTotalTurno);
		
		JSeparator separator_10 = new JSeparator();
		separator_10.setForeground(Color.GRAY);
		separator_10.setBounds(764, 731, 166, 1);
		add(separator_10);
		
		JSeparator separator_11 = new JSeparator();
		separator_11.setForeground(Color.GRAY);
		separator_11.setBounds(764, 757, 166, 1);
		add(separator_11);
		
		JButton botonModificarTurno = new JButton("<html><center>Modificar</center><center>Turno</center></html>");
		botonModificarTurno.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				ControlTurno.getInstance().mostrarModificarTurno();
			
			}
		});
		botonModificarTurno.setForeground(Color.BLACK);
		botonModificarTurno.setFont(new Font("Tahoma", Font.PLAIN, 12));
		botonModificarTurno.setBorder(UIManager.getBorder("Button.border"));
		botonModificarTurno.setBackground(SystemColor.activeCaptionBorder);
		botonModificarTurno.setBounds(813, 571, 117, 52);
		add(botonModificarTurno);
		
		JScrollPane scrollPane_1 = new JScrollPane();
		scrollPane_1.setBounds(44, 158, 952, 267);
		add(scrollPane_1);
		
		tablaBusqueda = new JTable();
		scrollPane_1.setViewportView(tablaBusqueda);
		tablaBusqueda.setModel(new DefaultTableModel(modelTurnos,new String[] {"Fecha","Habitaci\u00F3n","Usuario","Hora de entrada","Hora de salida","Tiempo","Importe","Consumici\u00F3n","Total"}) {
			
			public boolean isCellEditable(int row, int column) {
				return false;
		}});
		scrollPane_1.setName("turnos");
		
		tablaBusqueda.getColumnModel().getColumn(0).setPreferredWidth(100);
		tablaBusqueda.getColumnModel().getColumn(0).setCellRenderer(modelocentrar);
		tablaBusqueda.getColumnModel().getColumn(1).setPreferredWidth(100);
		tablaBusqueda.getColumnModel().getColumn(1).setCellRenderer(modelocentrar);
		tablaBusqueda.getColumnModel().getColumn(2).setPreferredWidth(120);
		
		tablaBusqueda.getColumnModel().getColumn(3).setPreferredWidth(100);
		tablaBusqueda.getColumnModel().getColumn(3).setCellRenderer(modelocentrar);
		tablaBusqueda.getColumnModel().getColumn(4).setPreferredWidth(100);
		tablaBusqueda.getColumnModel().getColumn(4).setCellRenderer(modelocentrar);
		tablaBusqueda.getColumnModel().getColumn(5).setPreferredWidth(100);
		tablaBusqueda.getColumnModel().getColumn(5).setCellRenderer(modelocentrar);
		tablaBusqueda.getColumnModel().getColumn(6).setPreferredWidth(100);
		tablaBusqueda.getColumnModel().getColumn(6).setCellRenderer(modeloderecha);
		tablaBusqueda.getColumnModel().getColumn(7).setPreferredWidth(100);
		tablaBusqueda.getColumnModel().getColumn(7).setCellRenderer(modeloderecha);
		tablaBusqueda.getColumnModel().getColumn(8).setPreferredWidth(100);
		tablaBusqueda.getColumnModel().getColumn(8).setCellRenderer(modeloderecha);
	

		tablaBusqueda.addMouseListener(new MouseAdapter() 
		{ 
			public void mouseClicked(MouseEvent e) 
			{ 
			int fila = tablaBusqueda.rowAtPoint(e.getPoint());

			ControlTurno.getInstance().buscarTurno(fila);
			}});
		
		JSeparator separator_12 = new JSeparator();
		separator_12.setForeground(Color.LIGHT_GRAY);
		separator_12.setBounds(26, 140, 40, 1);
		add(separator_12);
		
		JLabel lblBsqueda = new JLabel("B\u00FAsqueda");
		lblBsqueda.setHorizontalAlignment(SwingConstants.CENTER);
		lblBsqueda.setFont(new Font("Tahoma", Font.PLAIN, 16));
		lblBsqueda.setBounds(64, 131, 81, 21);
		add(lblBsqueda);
		
		JSeparator separator_13 = new JSeparator();
		separator_13.setForeground(Color.LIGHT_GRAY);
		separator_13.setBounds(144, 140, 870, 1);
		add(separator_13);
		
		JSeparator separator_14 = new JSeparator();
		separator_14.setForeground(Color.LIGHT_GRAY);
		separator_14.setBounds(26, 443, 988, 1);
		add(separator_14);
		
		JSeparator separator_15 = new JSeparator();
		separator_15.setOrientation(SwingConstants.VERTICAL);
		separator_15.setForeground(Color.LIGHT_GRAY);
		separator_15.setBounds(26, 140, 1, 303);
		add(separator_15);
		
		JSeparator separator_16 = new JSeparator();
		separator_16.setOrientation(SwingConstants.VERTICAL);
		separator_16.setForeground(Color.LIGHT_GRAY);
		separator_16.setBounds(1013, 140, 1, 303);
		add(separator_16);
		
	}
}
